package cc.sunni.article.service;

import cc.sunni.api.utils.PageUtils;
import cc.sunni.pojo.Article;
import cc.sunni.pojo.Category;
import cc.sunni.pojo.bo.NewArticleBO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Date;
import java.util.Map;

/**
 * 文章资讯表
 *
 * @author jl
 * @since 2021-02-19 23:34:35
 */
public interface ArticleService extends IService<Article> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 发布文章
     */
    void createArticle(NewArticleBO newArticleBO);

    /**
     * 更新定时发布为即时发布
     */
    void updateAppointToPublish();

    /**
     * 用户中心 - 查询我的文章列表
     */
    PageUtils queryMyArticleList(String userId, String keyword, Integer status, Date startDate, Date endDate, Integer page, Integer pageSize);

    /**
     * 更改文章的状态
     */
    void updateArticleStatus(String articleId, Integer pendingStatus);

    /**
     * 管理员查询文章列表
     */
    PageUtils queryAllArticleListAdmin(Integer status, Integer page, Integer pageSize);

    /**
     * 删除文章
     */
    void deleteArticle(String userId, String articleId);

    /**
     * 撤回文章
     */
    void withdrawArticle(String userId, String articleId);

    /**
     * 关联文章和gridfs的html文件id
     */
    void updateArticleToGridFS(String articleId, String articleMongoId);

    /**
     * 修改文字状态为立即发布
     */
    void updateArticleToPublish(String articleId);
}

